Circuitos de Segunda Ordem Gerais (Genéricos)

Jupyter Notebook desenvolvido por Gustavo S.S.

Dado um circuito de segunda ordem, determinamos sua resposta a um degrau x(t) (que pode ser tensão ou corrente), conforme as quatro etapas descritas a seguir:

  1. Determinamos as condições iniciais x(0) e dx(0)/dt e o valor final x(∞)

  2. Desativamos as fontes independentes e obtemos Equação Diferencial de Segunda Ordem

  3. Determinamos raízes características e encontramos a forma da resposta transiente xt(t).

  4. Dependendo se a resposta for com amortecimento supercrítico, com amortecimento crítico ou com subamortecimento, obtemos xt(t) com duas constantes desconhecidas

  5. Obtemos a resposta de estado estável xss(t) = x(∞)

  6. A resposta total agora é encontrada como a soma das respostas transiente e de estado estável

  7. Finalmente, estabelecer as constantes associadas com a resposta transiente impondo as condições iniciais x(0) e dx(0)/dt, determinadas no item 1.

Podemos aplicar esse procedimento geral para encontrar a resposta a um degrau de um circuito de segunda ordem, inclusive aqueles com amplificadores operacionais.

Exemplo 8.9

Determine a resposta completa v e, em seguida, i para t > 0 no circuito da Figura 8.25.


In [6]:
print("Exemplo 8.9\n")

from sympy import *

t = symbols('t')

V = 12
C = 1/2
L = 1

#Para t < 0
i0 = 0
v0 = V

print("i(0):",i0,"A")
print("v(0):",v0,"V")

#Para t = oo
i_f = V/(4 + 2)
vf = V*2/(4 + 2)

print("i(oo):",i_f,"A")
print("v(oo):",vf,"V")

#Para t > 0
#desativar fontes independentes

#i = v/2 + C*dv/dt

#4i + L*di/dt + v = 0
    #4*(v/2 + 1/2*dv/dt) + d(v/2 + 1/2*dv/dt)/dt + v = 0
    #2v + 2dv/dt + 1/2*dv/dt + 1/2*d^2v/t^2 + v = 0
    #d^2v/dt^2 + 5dv/dt + 6v = 0
    
#s^2 + 5s + 6 = 0
s1 = -2
s2 = -3
    
#Raizes reais e negativas: Superamortecido

#vn(t) = A1*exp(-2t) + A2*exp(-3t)
#vss(t) = v(oo) = 4

#v(t) = 4 + A1*exp(-2t) + A2*exp(-3t)

#dv(0)/dt = -2A1 -3A2 = ic(0)/C
    #ic(0) = -6
    #C = 1/2
    #-2A1 - 3A2 = -12
    #2A1 + 3A2 = 12

#v(0) = 4 + A1 + A2 = 12
    #A1 + A2 = 8

#2(8 - A2) + 3A2 = 12
A2 = -4
A1 = 12

v = A1*exp(s1*t) + A2*exp(s2*t) + vf

print("Resposta completa v(t):",v,"V")

#i = v/2 + C*dv/dt

i = v/2 + C*diff(v,t)

print("i(t):",i,"A")


Exemplo 8.9

i(0): 0 A
v(0): 12 V
i(oo): 2.0 A
v(oo): 4.0 V
Resposta completa v(t): 4.0 + 12*exp(-2*t) - 4*exp(-3*t) V
i(t): 2.0 - 6.0*exp(-2*t) + 4.0*exp(-3*t) A

Problema Prático 8.9

Determine v e i para t > 0 no circuito da Figura 8.28. (Ver comentários sobre fontes de corrente no Problema prático 7.5.)


In [36]:
print("Problema Prático 8.9")

s = symbols('s')

C = 1/20
L = 2
Is = 3

#Para t < 0
v0 = 0
i0 = 0

print("v(0):",v0,"V")
print("i(0):",i0,"A")


#Para t = oo
i_f = Is
vf = 4*Is

print("i(oo):",i_f,"A")
print("v(oo):",vf,"V")

#Para t > 0
dv0 = Is/C
di0 = 10*Is/L

print("dv(0)/dt:",dv0,"V/s")
print("di(0)/dt:",di0,"A/s")

#desativar fontes indep.

#4i + L*di/dt - v + 10i = 0
#i = -C*dv/dt
#14(-1/20*dv/dt) + 2(-1/20*d^2v/dt^2) - v = 0
    #-1/10*d^2v/dt^2 - 7/10*dv/dt - v = 0
    #d^2v/dt^2 + 7*dv/dt + 10v = 0

#s^2 + 7s + 10 = 0
r = solve(s**2 + 7*s + 10,s)
s1,s2 = r[0],r[1]

print("Raízes s1 e s2: {0} , {1}".format(s1,s2))

#Raizes reais e negativas: Superamortecido

#v(t) = vf + A1*exp(-5t) + A2*exp(-2t)
#v0 = A1 + A2 = -12
    #A1 = -12 - A2
#dv0/dt = -5A1 -2A2 = 60
    #-5A1 - 2(-12 - A1) = 60
A1 = (60-24)/(-3)
A2 = -12 - A1

print("Constantes A1 e A2: {0} , {1}".format(A1,A2))

v = A1*exp(s1*t) + A2*exp(s2*t) + vf

print("Resposta completa v(t):",v,"V")

#3 = C*dv/dt + i
i = 3 - C*diff(v,t)

print("Resposta i(t):",i,"A")


Problema Prático 8.9
v(0): 0 V
i(0): 0 A
i(oo): 3 A
v(oo): 12 V
dv(0)/dt: 60.0 V/s
di(0)/dt: 15.0 A/s
Raízes s1 e s2: -5 , -2
Constantes A1 e A2: -12.0 , 0.0
Resposta completa v(t): 12 - 12.0*exp(-5*t) V
Resposta i(t): 3 - 3.0*exp(-5*t) A

Exemplo 8.10

Descubra vo(t) para t > 0 no circuito da Figura 8.29.


In [37]:
print("Exemplo 8.10\n")

V = 7
L1 = 1/2
L2 = 1/5

#Para t < 0
i1_0 = 0
i2_0 = 0

print("i1(0):",i1_0,"A")
print("i2(0):",i2_0,"A")

#Para t = oo
i_f = V/3

print("i(oo):",i_f,"A")

#Para t > 0
#di1(0)/dt = vl/L1
di1 = V/L1
#di2(0)/dt = vl/L2
di2 = 0/L2

print("di1(0)/dt:",di1,"A/s")
print("di2(0)/dt:",di2,"A/s")

#desligar fontes indep.
#3i1 + 1/2*di1/dt + (i1 - i2) = 0
    #4i1 + 1/2*di1/dt - i2 = 0
#1/5*di2/t + i2 - i1 = 0
    #4/5*di1/dt + 1/10*d^2i1/dt^2 + 4i1 + 1/2*di1/dt - i1 = 0
    #d^2i1/dt^2 + 13di1/dt + 30i1 = 0

#s^2 + 13s + 30 = 0

r = solve(s**2 + 13*s + 30,s)
s1,s2 = r[0],r[1]

print("Raizes s1 e s2: {0} , {1}".format(s1,s2))

#raizes reais e negativas: Superamortecido

#i1(t) = 7/3 + A1*exp(-10t) + A2*exp(-3t)
#i1(0) = 7/3 + A1 + A2 = 0
    #A1 = -7/3 - A2
#di1(0)/dt = -10A1 -3A2 = 14
    #-10(-7/3 - A2) - 3A2 = 14
A2 = (14 - 70/3)/7
A1 = -7/3 - A2

print("Constantes A1 e A2: {0} , {1}".format(A1,A2))

i1 = i_f + A1*exp(s1*t) + A2*exp(s2*t)

print("i1(t):",i1,"A")

#V = 3i1 + L1*di1/dt + (i1 - i2)
i2 = 3*i1 + L1*diff(i1,t) + i1 - V

print("i2(t):",i2,"A")

vo = i1 - i2

print("V0(t):",vo,"V")


Exemplo 8.10

i1(0): 0 A
i2(0): 0 A
i(oo): 2.3333333333333335 A
di1(0)/dt: 14.0 A/s
di2(0)/dt: 0.0 A/s
Raizes s1 e s2: -10 , -3
Constantes A1 e A2: -1.0000000000000002 , -1.3333333333333333
i1(t): 2.33333333333333 - 1.33333333333333*exp(-3*t) - 1.0*exp(-10*t) A
i2(t): 2.33333333333333 - 3.33333333333333*exp(-3*t) + 1.0*exp(-10*t) A
V0(t): -4.44089209850063e-16 + 2.0*exp(-3*t) - 2.0*exp(-10*t) V

Problema Prático 8.10

Para t > 0, obtenha vo(t) no circuito da Figura 8.32. (Sugestão: Determine primeiro v1 e v2.)


In [71]:
print("Problema Prático 8.10")

V = 20
C1 = 1/2
C2 = 1/3

#Para t < 0
v1_0 = 0
v2_0 = 0

print("v1(0) e v2(0):",v1_0,"V")

#Para t = oo
v1_f = V
v2_f = V

print("v1(oo) e v2(oo):",v1_f,"V")

#Para t > 0
#dv1(0)/dt = i1(0)/C1 = (V/1)/(1/2)
dv1 = V/C1
#dv2(0)/dt = i2(0)/C2 = 0/C2
dv2 = 0

print("dv1(0)/dt:",dv1,"V/s")
print("dv2(0)/dt:",dv2,"V/s")

#desligar fontes indep.
#v1/1 + C1*dv1/dt + vo/1 = 0
#vo = v1-v2
    #v1 + 1/2*dv1/dt + v1-v2 = 0
    #dv1/dt + 4v1 - 2v2 = 0
#v1 = 1*C2*dv2/dt + v2
    #1/3*d^2v2/dt^2 + dv2/dt + 4/3*dv2/dt + 4v2 - 2v2 = 0
    #d^2v2/dt^2 + 7dv2/dt + 6v2 = 0

#s^2 + 7s + 6 = 0

r = solve(s**2 + 7*s + 6,s)
s1,s2 = r[0],r[1]

print("Raizes para v2:",s1,s2)

#raizes reais e negativas: Superamortecido

#v2(t) = 20 + A1*exp(-6t) + A2*exp(-t)
#v2(0) = 20 + A1 + A2 = 0
    #A2 = -20 - A1
#dv2(0)/dt = -6A1 - A2 = 0
    #-6A1 - (-20 - A1) = 0
A1 = 20/5
A2 = -20 - A1

print("Constantes A1 e A2:",A1,A2)

v2 = v2_f + A1*exp(s1*t) + A2*exp(s2*t)
print("v2(t):",v2,"V")

v1 = C2*diff(v2,t) + v2
print("v1(t):",v1,"V")

vo = v1 - v2
print("Resposta vo(t):",vo,"V")


Problema Prático 8.10
v1(0) e v2(0): 0 V
v1(oo) e v2(oo): 20 V
dv1(0)/dt: 40.0 V/s
dv2(0)/dt: 0 V/s
Raizes para v2: -6 -1
Constantes A1 e A2: 4.0 -24.0
v2(t): 20 - 24.0*exp(-t) + 4.0*exp(-6*t) V
v1(t): 20 - 16.0*exp(-t) - 4.0*exp(-6*t) V
Resposta vo(t): 8.0*exp(-t) - 8.0*exp(-6*t) V